// 发送ajax请求
/*
* 1. 封装功能函数
*   1. 功能点明确
*   2. 函数内部应该保留固定代码(静态的)
*   3. 将动态的数据抽取成形参，由使用者根据自身的情况动态的传入实参
*   4. 一个良好的功能函数应该设置形参的默认值(ES6的形参默认值)
* 2. 封装功能组件
*   1. 功能点明确
*   2. 组件内部保留静态的代码
*   3. 将动态的数据抽取成props参数，由使用者根据自身的情况以标签属性的形式动态传入props数据
*   4. 一个良好的组件应该设置组件的必要性及数据类型
*     props: {
*       msg: {
*         required: true,
*         default: 默认值，
*         type: String
*       }
*     }
*
* */
// const BASE_URL = 'http://localhost:3000'
// const BASE_URL = 'https://autumnfish.cn'
const BASE_URL = 'https://www.codeman.ink/api'

const onLine_url = 'http://gvtf77.natappfree.cc'

import config from './config'

// options 谁用myRequest方法 就传它的url过来
export const myRequest = (url, data={}, method='GET') => {
	// 异步封装 Promise ，
	// 1. new Promise初始化promise实例的状态为pending
	return new Promise((resolve,reject) => {
		uni.request({
			url: BASE_URL + url,
			method,
			data,
			// #ifdef MP-WEIXIN
			// 设置请求的 header，App、H5端会自动带上cookie，且H5端不可手动修改
			header:{
				// 因为cookie有4条数据，我们只需要MUSIC_U开头的数据 但又顺序不同所以找出来
				cookie:uni.getStorageSync('cookie')?uni.getStorageSync('cookie').find(item => item.indexOf('MUSIC_U') !== -1):''
			},
			// #endif
			// #ifdef H5
			// 跨域请求时是否携带凭证（cookies） 仅H5端有用
			withCredentials:true,
			// #endif
			success: (res) => {		
				// if(res.data.code !== 200){
				// 	return uni.showToast({
				// 		title:'获取数据失败'
				// 	})
				// }
				if(data.isLogin){ //登录请求
					// 将用户的cookie存储本地
					uni.setStorage({
						key:'cookie',
						data:res.cookies,
						success() {
							console.log(res.cookies,'存了cookie');
						}
					})
				}
				// console.log(uni.getStorageSync('cookies')[2]);
				// 如果数据调佣成功，请求resolve 返回res给调用者
				resolve(res.data)
			},
			fail: (err) => {
				uni.showToast({
					title:'请求接口失败!!!'
				})
				reject(err)
			}
		})
	}).catch((e) => {})
}

// myRequest({
// 	url:'/api/getlunbo',
// 	method:'post',
// 	data:{
		
// 	}
// })
